home *** CD-ROM | disk | FTP | other *** search
/ Risc World 5 / Risc World 5.iso / SOFTWARE / Issue5 / PD / DIRSYNC / LegalStuff / ccres / c / _ProgInfo < prev    next >
Text File  |  2004-03-20  |  4KB  |  82 lines

  1. /* _ProgInfo.c
  2.    $Id: _ProgInfo.c,v 1.2 2004/03/20 22:13:58 joty Exp $
  3.  
  4.    Copyright (c) 2003-2004 Dave Appleby / John Tytgat
  5.  
  6.    This file is part of CCres.
  7.  
  8.    CCres is free software; you can redistribute it and/or modify
  9.    it under the terms of the GNU General Public License as published by
  10.    the Free Software Foundation; either version 2 of the License, or
  11.    (at your option) any later version.
  12.  
  13.    CCres is distributed in the hope that it will be useful,
  14.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16.    GNU General Public License for more details.
  17.  
  18.    You should have received a copy of the GNU General Public License
  19.    along with CCres; if not, write to the Free Software
  20.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  21.  */
  22.  
  23. #include "ccres.h"
  24.  
  25. #include <stdio.h>
  26.  
  27. #include <OSLib/proginfo.h>
  28.  
  29. static FLAGS ProgInfoLicenceType[] = {
  30.     {~0                             , "None"},
  31.     {proginfo_LICENCE_PUBLIC_DOMAIN , "proginfo_LICENCE_PUBLIC_DOMAIN" },
  32.     {proginfo_LICENCE_SINGLE_USER   , "proginfo_LICENCE_SINGLE_USER"   },
  33.     {proginfo_LICENCE_SINGLE_MACHINE, "proginfo_LICENCE_SINGLE_MACHINE"},
  34.     {proginfo_LICENCE_SITE          , "proginfo_LICENCE_SITE"          },
  35.     {proginfo_LICENCE_NETWORK       , "proginfo_LICENCE_NETWORK"       },
  36.     {proginfo_LICENCE_AUTHORITY     , "proginfo_LICENCE_AUTHORITY"     }
  37. };
  38.  
  39. static FLAGS ProgInfoFlags[] = {
  40.     {proginfo_GENERATE_ABOUT_TO_BE_SHOWN , "proginfo_GENERATE_ABOUT_TO_BE_SHOWN" },
  41.     {proginfo_GENERATE_DIALOGUE_COMPLETED, "proginfo_GENERATE_DIALOGUE_COMPLETED"},
  42.     {proginfo_INCLUDE_LICENCE_TYPE       , "proginfo_INCLUDE_LICENCE_TYPE"       },
  43.     {proginfo_INCLUDE_WEB_PAGE_BUTTON    , "proginfo_INCLUDE_WEB_PAGE_BUTTON"    },
  44.     {proginfo_GENERATE_WEB_PAGE_CLICKED  , "proginfo_GENERATE_WEB_PAGE_CLICKED"  }
  45. };
  46.  
  47. static OBJECTLIST ProgInfoObjectList[] = {
  48.     {iol_FLAGS,   "proginfo_flags:",          offsetof(proginfo_object, flags),                   ProgInfoFlags,       ELEMENTS(ProgInfoFlags)                      },
  49.     {iol_MSG,     "title:",                   offsetof(proginfo_object, title),                   "title_limit:",      offsetof(proginfo_object, title_limit)       },
  50.     {iol_MSG,     "purpose:",                 offsetof(proginfo_object, purpose),                 NULL,                0                                            },
  51.     {iol_MSG,     "author:",                  offsetof(proginfo_object, author),                  NULL,                0                                            },
  52.     {iol_ENUM,    "licence_type:",            offsetof(proginfo_object, licence_type),            ProgInfoLicenceType, ELEMENTS(ProgInfoLicenceType)                },
  53.     {iol_MSG,     "prog_version:",            offsetof(proginfo_object, version),                 NULL,                0                                            },
  54.     {iol_STRING,  "alternative_window_name:", offsetof(proginfo_object, alternative_window_name), NULL,                0                                            }
  55. };
  56.  
  57. // FIXME: official OSLib names don't match CCres names
  58. static OBJECTLIST ProgInfoObjectList101[] = {
  59.     {iol_MSG,     "visit_url:",               offsetof(proginfo_object, uri),            NULL,                0},
  60.     {iol_BITS,    "visit_url_event:",         offsetof(proginfo_object, uri_action),      NULL,                0}
  61. };
  62.  
  63.  
  64. int _proginfo(PDATA data, PSTR pszIn, toolbox_relocatable_object_base * object)
  65. {
  66.     put_objects(data, pszIn, 0, (PSTR) (object + 1), ProgInfoObjectList, ELEMENTS(ProgInfoObjectList));
  67.     if (object->rf_obj.version == 101) {
  68.         put_objects(data, pszIn, 0, (PSTR) (object + 1), ProgInfoObjectList101, ELEMENTS(ProgInfoObjectList101));
  69.         return(sizeof(proginfo_object));
  70.     }
  71.     return(offsetof(proginfo_object, uri));
  72. }
  73.  
  74.  
  75. void proginfo(FILE * hf, toolbox_resource_file_object_base * object, PSTR pszStringTable, PSTR pszMessageTable)
  76. {
  77.     get_objects(hf, pszStringTable, pszMessageTable, (PSTR) (object + 1), ProgInfoObjectList, ELEMENTS(ProgInfoObjectList), 1);
  78.     if (object->version == 101) {
  79.         get_objects(hf, pszStringTable, pszMessageTable, (PSTR) (object + 1), ProgInfoObjectList101, ELEMENTS(ProgInfoObjectList101), 1);
  80.     }
  81. }
  82.